perm filename ALLSOR.VLI[VLI,LSP] blob sn#381927 filedate 1978-09-08 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00004 ENDMK
CāŠ—;


(de allsort (l f)
  (if (null l) ()
      (setq resl [0])
      (push (length l) l)
      (sor)))

(de sor (;; l1) ; il est CAPITAL que l1 soit locale ;
		; toutes les autres  variables sont globales ;
  (setq l1 (pop) n (pop))
  (if (= n 1) (lescape l1))
  (setq q (logshift n -1))
  (push q l1)
  (repeat (1- q) (nextl l1))
  (push (if (oddp n) (1+ q) q) (cdr l1))
  (rplacd l1 nil)
  (setq l1 (sor) l2 (sor) ll (rplacd resl l1))
  (while l1
	(if (f (car l2) (car l1))
	    (progn (push l1) (setq l1 l2 l2 (pop)) (rplacd ll l1)))
	(setq ll l1 l1 (cdr l1)))
  (rplacd ll l2)
  (cdr resl)
  )